gtk4.git
9 years agotests: Improve rendernode test further
Benjamin Otte [Fri, 23 Dec 2016 10:30:09 +0000 (11:30 +0100)]
tests: Improve rendernode test further

- Print benchmark output in fallback path
- Always run rendering, even when no filename given
- Don't require a filename when running with --benchmark

9 years agocellrenderer: Remove render() vfunc
Benjamin Otte [Fri, 23 Dec 2016 10:11:52 +0000 (11:11 +0100)]
cellrenderer: Remove render() vfunc

Make the last 2 cell renderers create the cairo node themselves.

9 years agocellrendererpixbuf: Implement snapshot()
Benjamin Otte [Fri, 23 Dec 2016 09:50:04 +0000 (10:50 +0100)]
cellrendererpixbuf: Implement snapshot()

9 years agocellrendererprogress: Implement snapshot()
Benjamin Otte [Fri, 23 Dec 2016 09:44:49 +0000 (10:44 +0100)]
cellrendererprogress: Implement snapshot()

9 years agocellrenderertoggle: Implement snapshot()
Benjamin Otte [Fri, 23 Dec 2016 08:31:54 +0000 (09:31 +0100)]
cellrenderertoggle: Implement snapshot()

9 years agocellrenderertext: Implement snapshot()
Benjamin Otte [Fri, 23 Dec 2016 08:23:07 +0000 (09:23 +0100)]
cellrenderertext: Implement snapshot()

9 years agocellrenderer: Move snapshotting down into cell renderers
Benjamin Otte [Fri, 23 Dec 2016 08:09:42 +0000 (09:09 +0100)]
cellrenderer: Move snapshotting down into cell renderers

Now that every call to GtkCellArea is a snapshot call and no more cairo
calls are left, move the actual differentiation between Cairo and
Snapshot down to the cell renderer.

9 years agotests: Add rendernode-create-tests
Benjamin Otte [Fri, 23 Dec 2016 07:08:17 +0000 (08:08 +0100)]
tests: Add rendernode-create-tests

Little tool that creates a bunch of test files to throw add the
rendernode binary.
They should really be part of a testsuite, but we have none, so OI just
put them here.

9 years agogsk: Add docs and error handling to serialization API
Benjamin Otte [Fri, 23 Dec 2016 07:03:36 +0000 (08:03 +0100)]
gsk: Add docs and error handling to serialization API

9 years agotests: Add some command-line flags to rendernode
Benjamin Otte [Fri, 23 Dec 2016 06:07:59 +0000 (07:07 +0100)]
tests: Add some command-line flags to rendernode

9 years agogsk: Add gsk_render_node_write_to_file()
Benjamin Otte [Fri, 23 Dec 2016 04:58:07 +0000 (05:58 +0100)]
gsk: Add gsk_render_node_write_to_file()

For when you're in a debugger and need to have a closer look at this
node...

9 years agogsk: Warn on cairo errors during gsk_render_node_draw()
Benjamin Otte [Fri, 23 Dec 2016 04:56:17 +0000 (05:56 +0100)]
gsk: Warn on cairo errors during gsk_render_node_draw()

It's the same warning we use inside GTK for when stuff weirdly goes
wrong.

9 years agogsk: Include config.h
Benjamin Otte [Fri, 23 Dec 2016 01:05:54 +0000 (02:05 +0100)]
gsk: Include config.h

The more you know:
Not including config.h causes the public API implemented in this file to
not be exported in the resulting library.

9 years agogsk: Implement gsk_renderer_render_texture() on GL
Benjamin Otte [Thu, 22 Dec 2016 19:01:52 +0000 (20:01 +0100)]
gsk: Implement gsk_renderer_render_texture() on GL

9 years agovulkan: Implement gsk_renderer_render_texture()
Benjamin Otte [Thu, 22 Dec 2016 18:01:07 +0000 (19:01 +0100)]
vulkan: Implement gsk_renderer_render_texture()

9 years agotests: Use gsk_renderer_render_texture()
Benjamin Otte [Thu, 22 Dec 2016 17:58:55 +0000 (18:58 +0100)]
tests: Use gsk_renderer_render_texture()

Only keep the version that calls gsk_render_node_draw() if people
specify the --fallback option.

The actual renderer selection works just as for regular GTK. The easiest
way to influence it is setting the GSK_RENDERER environment variable.

9 years agogsk: Add gsk_texture_download() API
Benjamin Otte [Wed, 21 Dec 2016 21:11:52 +0000 (22:11 +0100)]
gsk: Add gsk_texture_download() API

Now users can download pixels and make everything slooooooow.

9 years agogdk: Export gdk_cairo_surface_paint_pixbuf() into private header
Benjamin Otte [Wed, 21 Dec 2016 21:11:25 +0000 (22:11 +0100)]
gdk: Export gdk_cairo_surface_paint_pixbuf() into private header

9 years agodocs: Add GskTexture
Benjamin Otte [Wed, 21 Dec 2016 19:31:24 +0000 (20:31 +0100)]
docs: Add GskTexture

9 years agogsk: Rename to gsk_texture_download_surface()
Benjamin Otte [Wed, 21 Dec 2016 19:28:21 +0000 (20:28 +0100)]
gsk: Rename to gsk_texture_download_surface()

I want to reuse the name gsk_texture_download() for downloading the
actual bytes.

9 years agogsk: Add gsk_renderer_render_texture()
Benjamin Otte [Wed, 21 Dec 2016 19:23:46 +0000 (20:23 +0100)]
gsk: Add gsk_renderer_render_texture()

... and implement it for the Cairo renderer.

It's an API that instructs a renderer to render to a texture.
So far this is mostly meant to be used for testing, but I could imagine
it being useful for rendering DND icons.

9 years agogskcairo: Don't store the viewport in the global struct
Benjamin Otte [Wed, 21 Dec 2016 19:07:16 +0000 (20:07 +0100)]
gskcairo: Don't store the viewport in the global struct

Just query it locally.

9 years agogsk: Don't overdraw with transparent
Benjamin Otte [Wed, 21 Dec 2016 17:14:51 +0000 (18:14 +0100)]
gsk: Don't overdraw with transparent

That code doesn't do anything.

And what the code should be doing (clearing the abckground) isn't
necessary as cairo drawing is guaranteed to clear the surface.

9 years agorendernode: Fix typo
Benjamin Otte [Wed, 21 Dec 2016 12:32:32 +0000 (13:32 +0100)]
rendernode: Fix typo

9 years agogsk: Remove nonexisting functions
Benjamin Otte [Wed, 21 Dec 2016 08:49:43 +0000 (09:49 +0100)]
gsk: Remove nonexisting functions

The function was removed when gsk_render_node_draw() was and
gsk_renderer_realize() was refactored respectively.

9 years agotests: Add a simple test to convert rendernode to png
Benjamin Otte [Wed, 21 Dec 2016 06:20:28 +0000 (07:20 +0100)]
tests: Add a simple test to convert rendernode to png

Takes a rendernode file, outputs a PNG. Nothing more.

9 years agogsk: Export gsk_render_node_get_bounds()
Benjamin Otte [Wed, 21 Dec 2016 06:20:28 +0000 (07:20 +0100)]
gsk: Export gsk_render_node_get_bounds()

I'll need it in tests/testsuite soon.

9 years agoinspector: Add a render node save button
Benjamin Otte [Wed, 21 Dec 2016 05:50:39 +0000 (06:50 +0100)]
inspector: Add a render node save button

Now we can select buggy nodes, save them to a file, and add that file to
our testsuite.

9 years agogsk: Add gsk_render_node_serialize/deserialize()
Benjamin Otte [Wed, 21 Dec 2016 04:43:14 +0000 (05:43 +0100)]
gsk: Add gsk_render_node_serialize/deserialize()

This does a conversion to/from GBytes and is intended for writing tests.

It's really crude but it works.
And that probably means Alex will (ab)use it for broadway.

9 years agogsk: Remove spread member from GskShadow
Benjamin Otte [Wed, 21 Dec 2016 04:30:31 +0000 (05:30 +0100)]
gsk: Remove spread member from GskShadow

I had originally thought I'd use GskShadow for box-shadow, but didn't in
the end.

So now it's only used for text-shadow and icon-shadow, and those don't
have a spread.

9 years agoUpdated Czech translation
Marek Černocký [Thu, 22 Dec 2016 22:50:53 +0000 (23:50 +0100)]
Updated Czech translation

9 years agotreeview: Port rest of stuff to snapshot()
Benjamin Otte [Thu, 22 Dec 2016 02:35:24 +0000 (03:35 +0100)]
treeview: Port rest of stuff to snapshot()

The only thing still drawn with Cairo are grid lines.

9 years agotreeview: Partially convert to snapshot()
Benjamin Otte [Thu, 22 Dec 2016 01:29:22 +0000 (02:29 +0100)]
treeview: Partially convert to snapshot()

The big fat scary bin drawing function that actually draws the cell
renderers - that one is still missing.

9 years agogtkcssimagelinear.c: Avoid VLAs
Chun-wei Fan [Wed, 21 Dec 2016 03:48:56 +0000 (11:48 +0800)]
gtkcssimagelinear.c: Avoid VLAs

VLAs are not supported by Visual Studio and possibly other compilers that
are supported by GTK+-3.90+, and probably never will be, although it is a
C99 specification, and it became optional for C11.  It is also not a part
of the newer compiler requirements that are listed out for GTK+-3.90.x.

There exist concerns about the implementation of VLAs in compilers that
support them as well, so change it to a g_newa() approach.

https://bugzilla.gnome.org/show_bug.cgi?id=773299

9 years ago3.89.2
Matthias Clasen [Wed, 21 Dec 2016 15:17:09 +0000 (10:17 -0500)]
3.89.2

9 years agoFix distcheck
Matthias Clasen [Wed, 21 Dec 2016 19:12:17 +0000 (14:12 -0500)]
Fix distcheck

9 years agoFixes for the gdk docs
Matthias Clasen [Wed, 21 Dec 2016 17:03:05 +0000 (12:03 -0500)]
Fixes for the gdk docs

9 years agoMake gsk docs build
Matthias Clasen [Wed, 21 Dec 2016 15:58:10 +0000 (10:58 -0500)]
Make gsk docs build

9 years agosnapshot: Fix some annoations
Rico Tzschichholz [Wed, 21 Dec 2016 17:16:34 +0000 (18:16 +0100)]
snapshot: Fix some annoations

9 years agogsk: Fix build of 22110ef5a480fbddf9d20f510a64f4524a52718f
Rico Tzschichholz [Wed, 21 Dec 2016 17:15:50 +0000 (18:15 +0100)]
gsk: Fix build of 22110ef5a480fbddf9d20f510a64f4524a52718f

9 years agoGskRenderNode: Use C99 flexible arrays to avoid extra allocation
Alexander Larsson [Wed, 21 Dec 2016 11:20:56 +0000 (12:20 +0100)]
GskRenderNode: Use C99 flexible arrays to avoid extra allocation

Instead of a separate allocation for any arrays in the render node
we allocate these as part of the render node itself, using C99
flexible arrays.

This leads to less allocations, which is nice, but the major reason
for this is that it allows us to change the allocation scheme further
in the future. For instance, we want to do stack-like allocation so
that all the render-nodes for an entire frame are allocated in one
(or a few) chunks.

9 years agogsk: Add bounds member to RenderNode
Alexander Larsson [Wed, 21 Dec 2016 10:21:38 +0000 (11:21 +0100)]
gsk: Add bounds member to RenderNode

Instead of constantly recalculating this (especially recursively for
parents!) we do it only on construction, because everything is
immutable anyway. Also, most nodes had a bounds already and can
use the new parent member instead.

We also do direct access to the node bounds rather than calling
gsk_render_node_get_bounds in various places, which means
we do less copying.

9 years agogsk: Drop gsk_render_node_make_immutable, nodes are always immutable
Alexander Larsson [Wed, 21 Dec 2016 10:00:18 +0000 (11:00 +0100)]
gsk: Drop gsk_render_node_make_immutable, nodes are always immutable

9 years agogsk docs: gsk_render_node_iter_get_type doesn't exist anymore
Alexander Larsson [Wed, 21 Dec 2016 09:59:35 +0000 (10:59 +0100)]
gsk docs: gsk_render_node_iter_get_type doesn't exist anymore

9 years agoUpdate Kazakh translation
Baurzhan Muftakhidinov [Wed, 21 Dec 2016 10:56:38 +0000 (10:56 +0000)]
Update Kazakh translation

9 years agoUpdate German translation
Christian Kirbach [Tue, 20 Dec 2016 19:11:29 +0000 (19:11 +0000)]
Update German translation
(cherry picked from commit e0856226c580191805f58d0df10260df6b293df9)

9 years agodebug: Add GTK_DEBUG=snapshot
Benjamin Otte [Tue, 20 Dec 2016 18:20:02 +0000 (19:20 +0100)]
debug: Add GTK_DEBUG=snapshot

This causes the snapshotting algorithm to dump all widget nodes into
their own container node. We then name that group accordingly (ie
"GtkSwitch<0xdeadbeef>") so you can easily see which node belongs where.

The feature is toggleable in the inspector's visual tab.

There's a few problems with it, becuse GtkSnapshot optimized container
nodes away if they are not needed, so we are losing some widgets...

9 years agorevealer: Implement snapshot()
Benjamin Otte [Tue, 20 Dec 2016 18:06:07 +0000 (19:06 +0100)]
revealer: Implement snapshot()

The revealer needs to clip the child during animations, whcih draw() did
automatically, but snapshot() does not.

9 years agoAPI: Export gtk_container_snapshot_child()
Benjamin Otte [Tue, 20 Dec 2016 18:00:07 +0000 (19:00 +0100)]
API: Export gtk_container_snapshot_child()

It's equivalent to gtk_container_propagate_draw() and then one is
public, too.

9 years agodebug: Remove pixel-cache debug categories
Benjamin Otte [Tue, 20 Dec 2016 17:30:14 +0000 (18:30 +0100)]
debug: Remove pixel-cache debug categories

We have no more pixel cache, so they are kind of useless.

9 years agoflowbox: Don't emit child-activated while dragging the pointer
Debarshi Ray [Tue, 20 Dec 2016 11:55:41 +0000 (12:55 +0100)]
flowbox: Don't emit child-activated while dragging the pointer

https://bugzilla.gnome.org/show_bug.cgi?id=776306

9 years agocssimageradial: Handle "partial" gradients correctly
Benjamin Otte [Mon, 19 Dec 2016 22:30:02 +0000 (23:30 +0100)]
cssimageradial: Handle "partial" gradients correctly

When the first/last color stop is not at 0%/100%, we need to start the
repeating at their offsets and not at 0%/100%.

Attached reftest demonstrates the problem.

9 years agosearchbar: Implement snapshot()
Benjamin Otte [Mon, 19 Dec 2016 19:04:52 +0000 (20:04 +0100)]
searchbar: Implement snapshot()

9 years agogadget: Remove gtk_css_gadget_draw()
Benjamin Otte [Mon, 19 Dec 2016 18:45:34 +0000 (19:45 +0100)]
gadget: Remove gtk_css_gadget_draw()

And with it, remove the draw func from custom gadgets, that has been
NULL everywhere.

All gadgets are snapshot now.

9 years agocolorswatch: Implement snapshot
Benjamin Otte [Mon, 19 Dec 2016 18:30:55 +0000 (19:30 +0100)]
colorswatch: Implement snapshot

9 years agoroundedbox: Add gtk_rounded_boxes_init_for_style()
Benjamin Otte [Mon, 19 Dec 2016 18:19:15 +0000 (19:19 +0100)]
roundedbox: Add gtk_rounded_boxes_init_for_style()

Instead of making people intiialize a rectangle and then applying border
radius manually, provide a constructor that does it for them.
While doing that, also allow people to instead request the padding box
or the content box.

Refactor all relevant code to use this new constructor.

9 years agogtk: Remove GtkJunctionSides
Benjamin Otte [Mon, 19 Dec 2016 17:46:24 +0000 (18:46 +0100)]
gtk: Remove GtkJunctionSides

9 years agotestgtk: Remove resize grips example
Benjamin Otte [Mon, 19 Dec 2016 17:21:59 +0000 (18:21 +0100)]
testgtk: Remove resize grips example

Resize grips are gone. And just showing an empty window is not terribly
exciting.

9 years agoframe: Implement snapshot()
Benjamin Otte [Mon, 19 Dec 2016 16:42:27 +0000 (17:42 +0100)]
frame: Implement snapshot()

9 years agoiconview: Implement snapshot()
Benjamin Otte [Mon, 19 Dec 2016 16:16:09 +0000 (17:16 +0100)]
iconview: Implement snapshot()

9 years agocellview: Implement snapshot()
Benjamin Otte [Mon, 19 Dec 2016 15:34:25 +0000 (16:34 +0100)]
cellview: Implement snapshot()

This also adds gtk_cell_area_snapshot().

9 years agogsk: Add GskOutsetShadowNode
Benjamin Otte [Mon, 19 Dec 2016 14:39:43 +0000 (15:39 +0100)]
gsk: Add GskOutsetShadowNode

9 years agogsk: Add GskInsetShadowNode
Benjamin Otte [Mon, 19 Dec 2016 04:13:42 +0000 (05:13 +0100)]
gsk: Add GskInsetShadowNode

And again lots of shadow code gets copied to GSK. But we're now almost
at a stage where widget-factory does not use cairo nodes anymore.

9 years agogsk: Add contains/intersect functions for GskRoundedRect
Benjamin Otte [Mon, 19 Dec 2016 03:39:33 +0000 (04:39 +0100)]
gsk: Add contains/intersect functions for GskRoundedRect

... and use them.

9 years agogsk: Add GskShadowNode
Benjamin Otte [Sun, 18 Dec 2016 23:45:35 +0000 (00:45 +0100)]
gsk: Add GskShadowNode

... and make the icon rendering code use it.

This requires moving even more shadow renering code into GSK, but so be
it. At least the "shadows not implemented" warning is now gone!

9 years agoAPI: gdk: Add gdk_rgba_is_clear() and gdk_rgba_is_opaque()
Benjamin Otte [Sun, 18 Dec 2016 21:31:18 +0000 (22:31 +0100)]
API: gdk: Add gdk_rgba_is_clear() and gdk_rgba_is_opaque()

I want to use these inside GSK, and I'm not a fan of putting GdkRGBA
APIs into it or duplicating it into GTK.

So public API it is.

9 years agogsk: Move gtk/gtkcairoblur.c to gsk/gskcairoblur.c
Benjamin Otte [Sun, 18 Dec 2016 20:45:15 +0000 (21:45 +0100)]
gsk: Move gtk/gtkcairoblur.c to gsk/gskcairoblur.c

9 years agoinspector: Print node type in node properties
Benjamin Otte [Sun, 18 Dec 2016 17:17:17 +0000 (18:17 +0100)]
inspector: Print node type in node properties

9 years agogsk: Add GskBorderNode
Benjamin Otte [Sun, 18 Dec 2016 17:14:53 +0000 (18:14 +0100)]
gsk: Add GskBorderNode

The node draws a solid CSS border, which can be used to cover everything
but dashed and dotted borders (double, groove, inset, ...).

For different border styles, we overlay multiple nodes and set their
colors to transparent for sides with non-matching styles.

9 years agogtk: Remove unused argument from function
Benjamin Otte [Sun, 18 Dec 2016 16:52:47 +0000 (17:52 +0100)]
gtk: Remove unused argument from function

9 years agogsk: Add gsk_rounded_rect_shrink()
Benjamin Otte [Sun, 18 Dec 2016 16:10:45 +0000 (17:10 +0100)]
gsk: Add gsk_rounded_rect_shrink()

... and replace _gtk_rounded_box_grow() and _gtk_rounded_box_shrink()
with it.

9 years agovulkan: Get rid of color in push constants
Benjamin Otte [Sun, 18 Dec 2016 06:08:37 +0000 (07:08 +0100)]
vulkan: Get rid of color in push constants

The color comes in instance data now, no need to abuse push constants
for it.

9 years agovulkan: Remove color from push constants
Benjamin Otte [Sun, 18 Dec 2016 06:07:02 +0000 (07:07 +0100)]
vulkan: Remove color from push constants

It's now handled by the color pipeline.

9 years agovulkan: Pass color rects in instance data
Benjamin Otte [Sun, 18 Dec 2016 05:54:48 +0000 (06:54 +0100)]
vulkan: Pass color rects in instance data

This way, we don't need push constants or per-vertex data, we can render
colored rectangles completely via instance data.

9 years agovulkan: Don't pass texture coordinates to the color pipeline
Benjamin Otte [Sun, 18 Dec 2016 04:59:56 +0000 (05:59 +0100)]
vulkan: Don't pass texture coordinates to the color pipeline

9 years agovulkan: Get vertex description from pipeline subclass
Benjamin Otte [Sun, 18 Dec 2016 04:33:16 +0000 (05:33 +0100)]
vulkan: Get vertex description from pipeline subclass

9 years agovulkan: Split color and blend pipelines
Benjamin Otte [Sun, 18 Dec 2016 01:18:01 +0000 (02:18 +0100)]
vulkan: Split color and blend pipelines

9 years agovulkan: Move vertex data tracking to the pipeline subclass
Benjamin Otte [Sun, 18 Dec 2016 00:45:07 +0000 (01:45 +0100)]
vulkan: Move vertex data tracking to the pipeline subclass

That way, different pipelines can draw different kinds of data.

9 years agovulkan: Add GskVulkanBlendPipeline
Benjamin Otte [Sat, 17 Dec 2016 23:57:37 +0000 (00:57 +0100)]
vulkan: Add GskVulkanBlendPipeline

So far that's just a simple pipeline that doesn't do anything.

9 years agovulkan: Make GskVulkanPipeline derivable
Benjamin Otte [Sat, 17 Dec 2016 23:33:53 +0000 (00:33 +0100)]
vulkan: Make GskVulkanPipeline derivable

9 years agomenu: Implement snapshot() for the menu code
Benjamin Otte [Sat, 17 Dec 2016 19:46:25 +0000 (20:46 +0100)]
menu: Implement snapshot() for the menu code

9 years agopaned: Implement snapshot()
Benjamin Otte [Sat, 17 Dec 2016 19:29:41 +0000 (20:29 +0100)]
paned: Implement snapshot()

9 years agocssimage: Implement snapshot() for cross-fade
Benjamin Otte [Sat, 17 Dec 2016 07:07:29 +0000 (08:07 +0100)]
cssimage: Implement snapshot() for cross-fade

9 years agosnapshot: Implement gtk_snapshot_push_opacity()
Benjamin Otte [Sat, 17 Dec 2016 07:06:59 +0000 (08:06 +0100)]
snapshot: Implement gtk_snapshot_push_opacity()

Use it in GtkWidget's opacity handling.

9 years agosnapshot: Handle NULL returns in pop_and_append()
Benjamin Otte [Sat, 17 Dec 2016 07:03:43 +0000 (08:03 +0100)]
snapshot: Handle NULL returns in pop_and_append()

9 years agogsk: Add cross-fade node
Benjamin Otte [Sat, 17 Dec 2016 06:44:10 +0000 (07:44 +0100)]
gsk: Add cross-fade node

And implement stack crossfades with it.

9 years agovulkan: Batch upload image barriers together
Benjamin Otte [Sat, 17 Dec 2016 03:54:19 +0000 (04:54 +0100)]
vulkan: Batch upload image barriers together

Doesn't seem to help much though...

9 years agovulkan: Add GskVulkanUploader
Benjamin Otte [Sat, 17 Dec 2016 03:22:44 +0000 (04:22 +0100)]
vulkan: Add GskVulkanUploader

It's the thing that makes sure pixels end up on the GPU.

9 years agovulkan: Split out command pool
Benjamin Otte [Fri, 16 Dec 2016 05:10:24 +0000 (06:10 +0100)]
vulkan: Split out command pool

This way we can pass the command pool around.
And that allows us to allocate and submitcustom buffers.
And that is necessary to make staging images work.

9 years agovulkan: Implement staging-buffer image upload
Benjamin Otte [Thu, 15 Dec 2016 23:22:23 +0000 (00:22 +0100)]
vulkan: Implement staging-buffer image upload

This is not enabled by default. Use GSK_RENDERING_MODE=staging-buffer to
use the code.

9 years agosnapshot: Convert Range, Scale, ColorScale
Benjamin Otte [Thu, 15 Dec 2016 09:09:41 +0000 (10:09 +0100)]
snapshot: Convert Range, Scale, ColorScale

And of course Scrollbar, but that one does no drawing itself.

9 years agogsk: Check for NULL in calls to gsk_cairo_node_get_surface()
Benjamin Otte [Thu, 15 Dec 2016 09:08:46 +0000 (10:08 +0100)]
gsk: Check for NULL in calls to gsk_cairo_node_get_surface()

That function does actually sometimes return NULL and is documented to
do so, so handle that case in the renderers (by omitting the node).

9 years agogsk: Implement linear gradient render nodes
Benjamin Otte [Thu, 15 Dec 2016 04:42:31 +0000 (05:42 +0100)]
gsk: Implement linear gradient render nodes

9 years agogsk: Add blend nodes
Benjamin Otte [Thu, 15 Dec 2016 03:24:37 +0000 (04:24 +0100)]
gsk: Add blend nodes

Implement blend mode support in GTK background compositing with it.

9 years agocss: Replace custom blend modes with GskBlendMode
Benjamin Otte [Thu, 15 Dec 2016 03:20:35 +0000 (04:20 +0100)]
css: Replace custom blend modes with GskBlendMode

9 years agogsk: Add missing blend modes
Benjamin Otte [Thu, 15 Dec 2016 03:19:03 +0000 (04:19 +0100)]
gsk: Add missing blend modes

This brings GSK blend modes in line with the CSS spec.

9 years agovulkan: Add infrastructure for multiple pipelines
Benjamin Otte [Wed, 14 Dec 2016 08:40:15 +0000 (09:40 +0100)]
vulkan: Add infrastructure for multiple pipelines

And use it to draw solid colors with a 2nd pipeline.

9 years agovulkan: Split PipelineLayout into its own object
Benjamin Otte [Wed, 14 Dec 2016 07:00:58 +0000 (08:00 +0100)]
vulkan: Split PipelineLayout into its own object

This way, we can share the layout between different pipelines.

9 years agovulkan: Split render ops into seperate structs
Benjamin Otte [Wed, 14 Dec 2016 06:34:18 +0000 (07:34 +0100)]
vulkan: Split render ops into seperate structs

This makes it a lot clearer which members are relevant for each
different operation.

9 years agovulkan: Add infrastructure for push constants
Benjamin Otte [Wed, 14 Dec 2016 06:21:21 +0000 (07:21 +0100)]
vulkan: Add infrastructure for push constants

THe code includes fragment push constants for colors, but that code is
so far unused.